package com.hnair.bot.controller.sys;
//package com.hnair.bot.controller;
//
//import com.baomidou.mybatisplus.mapper.EntityWrapper;
//import com.baomidou.mybatisplus.mapper.Wrapper;
//import com.hnair.bot.base.BaseController;
//import com.hnair.bot.common.utils.BuildTree;
//import com.hnair.bot.model.BfOrg;
//import com.hnair.bot.model.BfUser;
//import com.hnair.bot.model.TreeNode;
//import com.hnair.bot.service.IBfOrgService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestMethod;
//import org.springframework.web.bind.annotation.ResponseBody;
//import org.springframework.web.servlet.ModelAndView;
//
//import javax.servlet.http.HttpServletRequest;
//import java.util.*;
//
//
///****
// * 组织机构管理
// * @author wx
// *
// */
//@Controller
//public class OrgController extends BaseController{
//  
//	@Autowired
//	private IBfOrgService orgService;
//
//	
//	@RequestMapping("/org/index")
//	public String index(HttpServletRequest request) {
//		return "pages/org/index";
//	}
//	
//	@RequestMapping("/org/add")
//	public ModelAndView add(HttpServletRequest request) {
//		ModelAndView mav = new ModelAndView();
//		mav.setViewName("pages/org/add");
//		mav.addObject("pid", request.getParameter("pid"));		
//		return mav;
//	}
//	
//	
//	@RequestMapping("/org/edit")
//	public ModelAndView edit(HttpServletRequest request) {
//		ModelAndView modelAndView = new ModelAndView("pages/org/edit");
//		BfOrg org=orgService.selectById(Long.valueOf(request.getParameter("id")));
//		modelAndView.addObject("org",org);
//		return modelAndView;
//	}
//	
//	
//	/**
//	 * 
//	 * 组织机构列表
//	 * 
//	 * @param
//	 * @return
//	 * @throws
//	 */
//	@RequestMapping(value = { "/rest/orgList" }, method = RequestMethod.POST)
//	public @ResponseBody
//	Map<String, Object> orgList(HttpServletRequest request, BfOrg org) {
//		Map<String, Object> res = new HashMap<String, Object>();
//		try {
//
//			BfUser user=(BfUser)request.getSession().getAttribute("userInfo");	
//
//            List<BfOrg> BfOrgList = new ArrayList<BfOrg>();
//            BfOrg BfOrg = orgService.selectById(user.getOrgId());
//            BfOrgList.add(BfOrg);
//            List<BfOrg> orgList = orgService.getOrgListByPid(user.getOrgId());
//		    BfOrgList.addAll(orgList);
//
//			// res.put("total", total);
//			res.put("rows", BfOrgList);
//			res.put("success", "true");
//
//			return res;
//		} catch (Exception e) {
//			res.put("success", "false");
//			return res;
//		}
//	}
//
//	/**
//	 * 新增组织机构
//	 * 
//	 * @param
//	 * @return
//	 * @throws
//	 */
//	@RequestMapping(value = { "/rest/orgAdd" }, method = RequestMethod.POST)
//	public @ResponseBody
//	Map<String, Object> orgAdd(HttpServletRequest request, BfOrg org) {
//		Map<String, Object> res = new HashMap<String, Object>();
//		try {
//			BfUser user=(BfUser)request.getSession().getAttribute("userInfo");
//			// if (org.getPid() != 0) {
//			// Org m = orgService.selectByPrimaryKey(org.getPid());
//			// if (null != m && m.getPid() != 0) {
//			// res.put("success", "false");
//			// res.put("msg", "最多添加二级菜单");
//			// return res;
//			// }
//			// }
//			orgService.insert(org);
//			this.saveUserlog(request, "组织机构管理："+user.getUsername()+"添加组织操作");
//			res.put("success", "true");
//			return res;
//		} catch (Exception e) {
//			e.printStackTrace();
//			res.put("success", "false");
//			res.put("msg", e.getMessage());
//			return res;
//		}
//	}
//
//	/**
//	 * 修改组织机构
//	 * 
//	 * @param
//	 * @return
//	 * @throws
//	 */
//	@RequestMapping(value = { "/rest/orgUpdate" }, method = RequestMethod.POST)
//	public @ResponseBody
//	Map<String, Object> orgUpdate(HttpServletRequest request,BfOrg org) {
//		Map<String, Object> res = new HashMap<String, Object>();
//		try {
//			BfUser user=(BfUser)request.getSession().getAttribute("userInfo");
//			//String pid = request.getParameter("pid"); // 父菜单ID
//			// String displayOrderstr = orgService.selectMaxDisplayOrder(pid);
//			// // 处理菜单顺序号
//			// int displayOrder = 0;
//			// if (displayOrderstr == null || "".equals(displayOrderstr)) {
//			// displayOrder = 1;
//			// } else {
//			// displayOrder = Integer.parseInt(displayOrderstr) + 1;
//			// }
//			// org.setDisplayorder(new Integer(displayOrder));
////			if ("1".equals(saveType)) { // 添加
////				if (org.getPid() != 0) {
////					ParkOrg m = orgService.selectById(org.getPid());
////					if (null != m && m.getPid() != 0) {
////						res.put("success", "false");
////						res.put("msg", "最多添加二级菜单");
////						return res;
////					}
////				}
////				
////				orgService.insert(org);
////			} else {
////				orgService.updateById(org);
////			}
//			orgService.updateById(org);
//			this.saveUserlog(request, "组织机构管理："+user.getUsername()+"修改组织操作");
//			res.put("success", "true");
//			return res;
//		} catch (Exception e) {
//			e.printStackTrace();
//			res.put("success", "false");
//			res.put("msg", e.getMessage());
//			return res;
//		}
//	}
//
//	/**
//	 * 组织机构删除
//	 * 
//	 * @param request
//	 * @return
//	 */
//	@RequestMapping(value = { "/rest/orgDel" }, method = RequestMethod.POST)
//	public @ResponseBody
//	Map orgDel(HttpServletRequest request,String ids) {
//		Map<String, Object> res = new HashMap<String, Object>();
//		try {
//			BfUser user=(BfUser)request.getSession().getAttribute("userInfo");
////			String[] ids = request.getParameter("ids").split(",");// 菜单ID集合
////			for (int i = 0; i < ids.length; i++) {
////				// int count = orgService.selChildrenCount(ids[i]);
////				// if (count > 0) { // 说明该菜单还有子级菜单
////				// res.put("success", "children");
////				// return res;
////				// }
////				orgService.deleteById(Long.valueOf(ids[i])) ;
////			}
//			orgService.deleteBatchIds(Arrays.asList(ids.split(",")));
//			this.saveUserlog(request, "组织机构管理："+user.getUsername()+"删除组织操作");
//			res.put("success", "true");
//		} catch (Exception e) {
//			res.put("success", "false");
//			res.put("msg", e.getMessage());
//		}
//		return res;
//	}
//
//	/**
//	 * 
//	 * 组织机构列表
//	 * 
//	 * @param
//	 * @return
//	 * @throws
//	 */
//	@RequestMapping(value = { "/rest/orgAllList" }, method = RequestMethod.GET)
//	public @ResponseBody
//	Map<String, Object> orgAllList(HttpServletRequest request) {
//		Map<String, Object> res = new HashMap<String, Object>();
//		try {
//
//			Wrapper<BfOrg> wrapper=new EntityWrapper<BfOrg>();
//
//			List<BfOrg> orgList = null;
//			orgList = orgService.selectList(wrapper);
//
//			res.put("rows", orgList);
//			res.put("success", "true");
//
//			return res;
//		} catch (Exception e) {
//			res.put("success", "false");
//			return res;
//		}
//	}
//	
//	  /**
//	   * 菜单树
//	   * 
//	   * @param
//	   * @return
//	   * @throws
//	   */
//	  @RequestMapping(value = {"/rest/orgTree"})
//	  public @ResponseBody List<Map<String, Object>> orgTree(HttpServletRequest request) {
//		  
//		BfUser user=(BfUser)request.getSession().getAttribute("userInfo");
//	    List<Map<String, Object>> items = new ArrayList<Map<String, Object>>();	    
//	    Long pid = new Long(0);
//	    List<BfOrg> treeList = null;
//	    BfOrg org = orgService.selectById(user.getOrgId());
//	    if(org==null) 
//	    	pid = 0L;
//	    else
//	    	pid = org.getPid();
//	    
//	    Wrapper<BfOrg> wrapper=new EntityWrapper<BfOrg>();
//	    wrapper.eq("pid", pid);
//	    treeList = orgService.selectList(wrapper) ;
//	    
//	    for (int i = 0; i < treeList.size(); i++) {
//	    	for(int j=0; j<user.getOrgIdList().size(); j++){
//	    		if(treeList.get(i).getId()==user.getOrgIdList().get(j)){
//	    			Map<String, Object> item = new HashMap<String, Object>();
//	    		      item.put("id", treeList.get(i).getId());
//	    		      item.put("text", treeList.get(i).getName());
//	    		      
//	    		      Long chid = treeList.get(i).getId();
//	    		      List<BfOrg> treeListChildren = null;
//	    		      
//	    		      treeListChildren = orgService.selectList(wrapper);
//	    		     
//	    		      if (treeListChildren.size() > 0) {
//	    		        item.put("children", genChildTree(treeList.get(i).getId()));
//	    		      }
//	    		      items.add(item);
//	    		}
//	    	}
//	    }
//	    return items;
//	  }
//
//	  private List<Map<String, Object>> genChildTree( Long parentId) {
//	    List<Map<String, Object>> items = new ArrayList<Map<String, Object>>();
//	    Map<String, Object> para = new HashMap<String, Object>();
//	    List<BfOrg> treeList = null;
//	    Wrapper<BfOrg> wrapper1=new EntityWrapper<BfOrg>();
//	    wrapper1.eq("pid", parentId);
//	    treeList = orgService.selectList(wrapper1);
//	    
//	    for (int i = 0; i < treeList.size(); i++) {
//	      Map<String, Object> item = new HashMap<String, Object>();
//	      item.put("id", treeList.get(i).getId());
//	      item.put("text", treeList.get(i).getName());
//	      if (treeList.get(i).getPid() == 0) {
//	        item.put("state", "closed");
//	      }
//	      
//
//	      List<BfOrg> treeListChildren =  null;
//	      
//	      treeListChildren= orgService.selectList(wrapper1);
//	      
//	      if (treeListChildren.size() > 0) {
//	        item.put("children", genChildTree( treeList.get(i).getId()));
//	      }
//	      items.add(item);
//	    }
//	    return items;
//	  }
//	
//	@RequestMapping(value = { "/rest/comboTree" }, method = RequestMethod.POST)
//	public @ResponseBody
//	Object comboTree(HttpServletRequest request) {
//		
//		
//		Map<String, Object> res = new HashMap<String, Object>();
//		try {
//			List<TreeNode> treeNode;
//			BfOrg BfOrg;
//			TreeNode tree;
//			BfUser user=(BfUser)request.getSession().getAttribute("userInfo");
//			
//			if(user.getOrgIdList()!=null && user.getOrgIdList().size() > 0){
//				treeNode = user.getOrgList();
//				return treeNode;
//			} else 
//				if(user.getOrgId()!=null && user.getOrgId() > 0){
//					BfOrg = orgService.selectById(user.getOrgId());
//					List<TreeNode> trees = new ArrayList<TreeNode>();
//					tree = new TreeNode();
//				    tree.setId(BfOrg.getId()+"");
//				    tree.setParentId(BfOrg.getPid()+"");
//				    tree.setText(BfOrg.getName());
//				    tree.setChildren(orgService.getOrgTreeByPidOrg(tree));    
//				    trees.add(tree);
//				    treeNode = BuildTree.build(trees);
//				    
//				    return treeNode;
//				 }
//			return null;
//		} catch (Exception e) {
//			res.put("success", "false");
//			return res;
//		}
//	}
//	
//	
//
//}
